package com.wande.dataplatform.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wande.common.mybatis.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 数据质量报告实体
 *
 * @author wande
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("dp_quality_report")
public class QualityReport extends BaseEntity {

    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 租户ID
     */
    private Long tenantId;

    /**
     * 报告类型: CHECK-稽查报告, CLEAN-清洗报告
     */
    private String reportType;

    /**
     * 任务ID
     */
    private Long taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 表ID
     */
    private Long tableId;

    /**
     * 表名
     */
    private String tableName;

    /**
     * 执行时间
     */
    private LocalDateTime executeTime;

    /**
     * 总行数
     */
    private Long totalRows;

    /**
     * 问题行数
     */
    private Long problemRows;

    /**
     * 成功行数
     */
    private Long successRows;

    /**
     * 失败行数
     */
    private Long failedRows;

    /**
     * 质量评分(0-100)
     */
    private BigDecimal qualityScore;

    /**
     * 执行时长(毫秒)
     */
    private Long executeDuration;

    /**
     * 问题详情(JSON格式)
     */
    private String problemDetails;

    /**
     * 维度统计(JSON格式)
     */
    private String dimensionStats;

    /**
     * 状态: SUCCESS, FAILED, RUNNING
     */
    private String status;

    /**
     * 错误信息
     */
    private String errorMessage;

    /**
     * 所属项目ID
     */
    private Long projectId;
}
